264. 丑数 II
264. 丑数 II
Similar Question
Solution Tips
方案一: 动态规划 + 模拟
最优化分析:4 和从 6 开始的所有丑数,都是在其前面的某个丑数乘以 2, 3, 5
的结果
就是从一个基准数 1 开始,算 1*2、1*3、1*5 的最小值,得出结果 1*2 最小,再将对应 Index++ 即可,结果就是每个数都会各自与 2 3 5 相乘,乘过了就轮到下一个
var nthUglyNumber = function (n) {
let index2 = 0, index3 = 0, index5 = 0
let T = []
T[0] = 1
for (let i = 1; i < n; i++) {
T[i] = Math.min(T[index2] * 2, T[index3] * 3, T[index5] * 5)
if (T[i] === T[index2] * 2) index2++
if (T[i] === T[index3] * 3) index3++
if (T[i] === T[index5] * 5) index5++
}
return T[n - 1]
};
console.log(nthUglyNumber(1));